﻿/* Copyright © 2012 Gargol, Gargol at gbot dot org
   Based on CoreDC Copyright 2007 © Johan Pettersson, Fredrik Johansson, Michael Starberg, Christian Epstein.
 
This file is part of ADCCore.

ADCCore is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

ADCCore is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with ADCCore.  If not, see <http://www.gnu.org/licenses/>. */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ADCCore.Classes
{
    public class Interface
    {
        public interface IChat
        {
            void DcClient_OnMainchatMessage(DcClient sender, User user, string text, bool ownMessage);
            void DcClient_OnPrivateMessageRecieved(DcClient sender, User user, string text);
            void DcClient_OnPrivateMessageSent(DcClient sender, User user, string text);
        }

        public interface IConnection
        {
            void DcClient_OnConnected(DcClient sender);
            void DcClient_OnConnecting(DcClient sender);
            void DcClient_OnDisconnected(DcClient sender);
            void DcClient_OnPasswordRejected(DcClient sender);
        }

        public interface IError
        {
            void DcClient_OnBug(DcClient sender, Exception ex);
            void DcClient_OnError(DcClient sender, Exception ex);
        }

        public interface IHub
        {
            void DcClient_OnClientConnectionRecieved(DcClient sender, User user);
            void DcClient_OnReverseClientConnectionRecieved(DcClient sender, User user);
            void DcClient_OnTopic(DcClient sender, string text);
            void DcClient_OnUserCommand(DcClient sender, UserCommand userCommand);
        }

        public interface IRaw
        {
            void DcClient_OnMessageReceived(DcClient sender, string text);
            void DcClient_OnMessageSent(DcClient sender, string text);
            void DcClient_OnTrace(DcClient sender, string text);
        }

        public interface ISearch
        {
            void DcClient_OnSearch(DcClient sender, SearchInfo searchInfo);
            void DcClient_OnSearchReply(DcClient sender, SearchReply searchReply);
        }

        public interface ITrauma
        {
            void DcClient_OnRedirected(DcClient sender, string hubAddress);
        }

        public interface IUser
        {
            void DcClient_OnJoin(DcClient sender, User user);
            void DcClient_OnParts(DcClient sender, User user);
            void DcClient_OnUserChanged(DcClient sender, User user);
        }

    }
}
